Model Adaline
Schemat neuronu Adaline (ang. Adaptive Linear Neuron) przedstawiono na rysunku 6.8 Budowa tego neuronu jest bardzo podobna do modelu perceptronu, a jedyna różnica dotyczy algorytmu uczenia. Sposób wyznaczania sygnału wyjściowego jest identyczny z przedstawionym w poprzednim punkcie dotyczącym perceptronu. Jednak w przypadku neuronu typu Adaline porównuje się sygnał wzorcowy d z sygnałem 5 na wyjściu części liniowej neuronu (sumator). Stąd pochodzi nazwa tego typu neuronów. W ten sposób otrzymujemy błąd dany wzorem z = d — s. Uczenie neuronu, czyli dobór wag, sprowadza się do minimalizacji funkcji określonej w sposób następujący: (6.24) Miarę błędu (6.24) określa się mianem błędu średniego kwadratowego. Uwzględniając tylko część liniową neuronu, możemy do modyfikacji wag użyć algorytmów gra- dientowych, gdyż funkcja celu zdefiniowana zależnością (6.24) jest różniczkowalna. Do minimalizacji tejże funkcji użyjemy metody największego spadku. Metoda ta zostanie dokładniej omówiona przy okazji opisywania algorytmu wstecznej propagacji błędów. Wagi w neuronie typu Adaline modyfikuje się zgodnie ze wzorem SQ (w,) Wi(t + 1) = Wj(t) - //- dwj w którym t] jest współczynnikiem uczenia. Zauważmy, że 9Q{Wi) _ dQ(Wj) ds dwi dWi' Ponieważ s jest funkcją liniową względem wektora wag. więc możemy napisać ::: ds ::::: = Xi. 3 w i BQ(wj) ::::: = -(d-s). 'ós Zatem zależność (6.25) przybiera postać Wj(t + 1) = Wj(t) + n&Xj, gdzie S = d — s. Powyższa reguła nosi nazwę reguły delta (jest to szczególna postać tej reguły, ponieważ nie uwzględnia ona funkcji aktywacji neuronu). Na rysunku 6.9 przedstawiono schemat blokowy algorytmu uczenia neuronu typu Adaline za pomocą tej reguły. Rys. 6.9. Schemat blokowy algorytmu uczenia neuronu typu Adalinc Neurony typu Adaline można również uczyć za pomocą rekurencyjnej metody najmniejszych kwadratów (ang. Recursive Least Sąuares — RLS). Jako miarę błędu przyjmuje się następujące wyrażenie: < i Q(t) = £k'~ke2(k) = - xT(k)w(t))2, : k=l w którym A jest współczynnikiem zapominania (ang. forgetting factor) wybieranym z przedziału 1. Zauważmy, że poprzednie błędy mają mniejszy wpływ na wartość wyrażenia (6.30). Obliczając gradient miary błędu, otrzymujemy następującą zależność: 32C) aw (/) 9w (/) Ow(f) :::: / ::: = -2 £ *'-*- xr(k)w(r)x(k). k=i Optymalne wartości wag powinny spełniać tzw. równanie normalne ::: t :::: d(k) - xT(k)w(t))x{k) = 0. (6.32) *=1 Równanie (6.32) można przedstawić w postaci r(0 = R(/)w(/), (6.33) gdzie :::: i R(/) = J2>'~k^)x'\k) (6.34) jfcssl jest n x ^-wymiarową macierzą autokorelacji, oraz :::: i ::: r (f) = l'~kd(k)x(k) (6.35) k=\ jest n x 1-wymiarowym wektorem korelacji wzajemnej sygnału wejściowego i sygnału wzorcowego. Zakładamy, że sygnały te są realizacjami stacjonarnych procesów stochastycznych. Rozwiązanie równania normalnego (6.33) przybiera postać w(/) = R-,(/)r®, (6.36) jeżeli det R(/) ^ 0. Zastosujemy teraz algorytm RLS w celu uniknięcia operacji odwracania macierzy w równaniu (6.36) i rozwiążemy równanie normalne (6.33) w sposób rekurencyjny. Zauważmy, że macierz R(/) oraz wektor r(/) można przedstawić w postaci R(t) = AR(r - 1) + x(t)xT(t) (6.37) oraz r(0 = kr« - 1) + x{t)d(t). (6.38) Zastosujemy teraz lemat o odwrotności macierzy. Niech A i B będą dodatnio określonymi n x n-wymiarowymi macierzami takimi, że :::: A = B~ł + CD-lCr, (6.39) gdzie D jest dodatnio określoną m x m-wymiarową macierzą, natomiast C jest n x m- - wymiarową macierzą. Wówczas A-1 = B - BC(D + CrBC)-1CrB. (6.40) Porównując wzory (6.40) i (6.37), otrzymujemy A = R(f). B~' = AR(/ - 1), C = x(/), D= 1. P(0 = XTl- g(/)xr(/)P(f - 1), (6.42) P(/) = R-I(0 (6.43) :::: Pjt - l)x(Q______ ::: 8(0 k+xT(mt-\)x«y } Wykażemy prawdziwość następującego równania: g(/) = P (f)x®. (6.45) W wyniku prostych operacji algebraicznych otrzymujemy : = P(/-l)x(Q 6V A + xr(/)P(/ - 1 )x(/) _ k~l- l)x(/) + P(r - l)x(/)xr(/)P(f - l)x(r)J k + xT(t)P(t- 1 )x(r) A-'|P(t - l)x(r)xr(/) + P(f - l)x(0 k + xT(t)P(t — l)x(0 = A~'+ x7'(/)P(r- l)x(Q)lP(r - l)x(Q (6.46) k + xT(t)P(t - l)x(/) k~ll)x(/)xr(QP(/- l)x(/) k + xT(t)P(t - 1 )x(/) = r P(, - l)x(,),'(,) 1p(r_1)x(/) L A. 4-x (/)P(/ l)x(/)J = AT1 - g(r)xr(/)P(r - 1 )x(/) = P(/)x®. Z zależności (6.38) oraz (6.36) wynika, że w(/) = R-'(0r(/) = kP(t)r(t - 1) + P(t)x(t)d(t). (6.47) Z równania (6.42) oraz (6.47) otrzymujemy :: w(f) = - g(/)xr(/)P(/ - l)r(/ - 1) + P(/)x®J(/). (6.48) Konsekwencją zależności (6.38) i (6.36) jest następujący związek: :: w(/) = w(/ - 1) - g(/)xT(/)w(/ - 1) + P(t)x(ł)d(t). (6.49) Uwzględniając związek (6.45) w zależności (6.49). otrzymujemy następującą rekursję: w® = w(t - 1) + z(t)- xr(/)w(t - 1)J. (6.50) W konsekwencji algorytm RLS zastosowany do uczenia neuronu typu Adaline przybiera następującą postać: £(t) = d{t) - xT(t)w(t - 1) = d(t) - y(r), (6.51) :: P(/) = A_1[I - g(Oxr(r)P(/ - 1), (6.53) w(/) = w(r-l) + g(/)£®. (6.54) Jako wartości początkowe zazwyczaj przyjmuje się ::: P(0) = yh y > 0, (6.55) gdzie y jest stałą, natomiast I jest macierzą jednostkową. 6.2.4. Model neuronu sigmoidalnego Budowa neuronu sigmoidalnego jest analogiczna do dwóch ostatnio omówionych modeli, tzn. do perceptronu i neuronu typu Adaline. Nazwa pochodzi od funkcji aktywacji, która przybiera postać funkcji sigmoidalnej unipolarnej lub bipolarnej. Są to funkcje ciągłe i wyrażają się następującymi zależnościami: :: f(x) =------ !—----- funkcja unipolarna 1 + e-p* oraz :::: 1 - e{ix :: /(a) = tanh(óa) = --------------------- ----- funkcja bipolarna. 1 + e~px Na rysunku 6.10 przedstawiono przebiegi funkcji unipolarnej dla różnych wartości parametru Czytelnik może zauważyć, iż przy małej wartości współczynnika £ funkcja ma kształt łagodny, wraz ze wzrostem współczynnika wykres staje się bardziej stromy, aż wreszcie funkcja ma charakter progowy. Cechą, która niewątpliwie jest ogromną zaletą neuronów sigmoidalnych, jest różniczkowalność funkcji aktywacji. Ponadto pochodne tych funkcji można łatwo obliczyć, gdyż przybierają one następującą postać: :: /'(*) = 0f(x)( 1 - /(a)) dla funkcji unipolarnej, (6.56) :: /'(a) = - /2(a)) dla funkcji bipolarnej. (6.57) Schemat neuronu sigmoidalnego przedstawiono na rysunku 6.11. |} Rys. 6.11. Schemat neuronu sigmoidalnego Sygnał wyjściowy jest dany wzorem y(0 = /(£w/(0*,(0). V=o ' Miarę błędu Q definiuje się jako kwadrat różnicy wartości wzorcowej i wartości otrzymanej na wyjściu neuronu, tzn. ff(w) = ^ Podobnie jak w przypadku neuronu typu Adaline do uczenia używa się reguły największego spadku, jednak teraz w wyprowadzeniach uwzględnimy funkcję aktywacji. Wagi neuronu uaktualniamy zgodnie ze wzorem ::: w,(t + 1) = Wi(t) - n ^ • (6.60) (i W i Wyznaczymy pochodną miary błędu względem wag. Oczywiście 3Q(Wi) dQ(wi) ds oraz Stąd Łatwo zauważyć, że Oznaczmy 8 = -(d-f{s))-f'(s). (6.65) Zgodnie ze wzorami (6.60) i (6.65) modyfikacji wag w kroku t 4- 1 dokonujemy w następujący sposób: Wi(t -ł- 1) = w,(t) - r)Sx, = w,® + n(d - f(s))f\s)xh (6.66) Przedstawimy teraz alternatywny sposób uczenia neuronu sigmoidalncgo z wykorzystaniem algorytmu RLS. Rozważymy dwa przypadki różniące się sposobem definiowania błędu. W przypadku pierwszym sygnał błędu jest wyznaczany na wyjściu części liniowej neuronu. Zatem miara błędu jest w postaci Q(t) = £ A'"V(A') t ::: = £>'-* W)-xr(*)w(02, ::: k=1 gdzie b(k:) = f-1(d(k)) = lub w postaci wektorowej gdzie r(/) = R®w(f), (6.70) : i R(0 = (6.71) A-l oraz r(0 = (6.72) *=i Zauważmy, że równania (6.71) i (6.72) są analogiczne do równań (6.34) i (6.35). Zatem algorytm RLS przybiera następującą postać: e{t) = b(t) - xr(/)w(r - 1) = b(t) - s(t), (6.73) ::: PC) = *Tl- g(/)xr(/)P(/ - 1), (6.75) :::: w® = w(/- l)+g(rM0. (6.76) przy czym warunki początkowe określa wzór (6.55). W przypadku drugim błąd jest określany na wyjściu części nieliniowej neuronu. Miara błędu przybiera postać 0(0 = J>'-V<*) (6.77) = J2x'~k- f(xT(k)Mt))\ :::: *=i Wyznaczając pochodną cząstkową miary (6.77) względem wektora w(/) i przyrównując wynik do 0. mamy :: 3w (/) f^ dw (t) ds(k) 3w(/) k=\ W toku dalszych obliczeń otrzymujemy = " (6.79) W wyniku zastosowania rozwinięcia Taylora do wyrażenia w nawiasie kwadratowym wzoru (6.79) dostajemy :: /(*(*)) * /(*(*)) + f'{s(k)){b(k) - s(k)). (6.80) gdzie :::: b{t) = f~l(d(t)). (6.81) W konsekwencji wzorów (6.79) i (6.80) otrzymujemy równanie i £ f'2(s(k))- xT{k)w(t)x(k) = 0. (6.82) k=i Równanie (6.82) w postaci wektorowej przybiera postać :::: r (0 = R ®w®t (6.83) gdzie R (t) = £k'-kf*(s(k))x{k)*T(k) (6.84) k=\ oraz :::: i r(0 = J^/^jOfc))*^*). (6.85) *=i Stosując następujące podstawienia we wzorach (6.73)-(6.76): :::: Mk) - f'(s(k))x(k), (6.86) :::: b(k) f'(s(k))b(k). (6.87) otrzymujemy następującą postać algorytmu RLS zastosowanego do uczenia neuronu sigmoidalnego: :: e«) = f'(s(t))- xr(/)w(/ - 1) » d(t) - y(t), (6.88) r(5(/))p(/-px(o g9 P(0 = - /'(j(0)g(0xT(0]P(/ - 1). (6.90) ::: w(/) = w(/-l) + g(0«(0. (6.91) Warunki początkowe określa zależność (6.55). ---- 1 - d(k) 1 |n j w przypadku funkcji bipolarnej